package exception.overriding;

import java.io.IOException;

public class SubClass extends SuperClass{
	//메소드 오버라이딩 - throws 관련 규칙 : 부모가 throws 한 Exception  타입만 throws 할 수 있다.
	public void test() throws ArrayIndexOutOfBoundsException{
		//역시 가장 안전한 것은 부모의 것과 똑같이 만드는 것이다. 
	}
	public void come1() throws NullPointerException, ClassCastException{
		//부모것이 throws한 Exception의 하위 타입은 얼마든지 throws 할 수 있다.(개수 상관 없음)
	}
	
	//public void come() throws Exception{}//Exception은 모든 Exception의 상위 타입이다! 다들 얘를 상속 받는다. 
	
	
	public void go() throws IOException{ }//얘는 부모에서 던진 예외 타입에서 벗어나기 때문에 에러
	
	public void go2() {}//부모가 throws한 exception을 안던지는 것은 상관 없다. 
}
